//package com.secf.service.action.hpy.hys.day88;
//
//import com.zaxxer.hikari.HikariConfig;
//import com.zaxxer.hikari.HikariDataSource;
//
//import javax.sql.DataSource;
//import java.sql.Connection;
//import java.sql.ResultSet;
//import java.sql.SQLException;
//import java.sql.Statement;
//
///**
// * @Author bug菌
// * @Source 公众号：猿圈奇妙屋
// * @Date 2024年7月9日15:01:32
// */
//public class ConnectionPoolTest {
//    private static DataSource dataSource;
//
//    public static void main(String[] args) {
//        // 初始化连接池配置
//        HikariConfig config = new HikariConfig();
//        config.setJdbcUrl("jdbc:mysql://localhost:3306/review_db");
//        config.setUsername("root");
//        config.setPassword("123456");
//        config.setMaximumPoolSize(10); // 设置最大连接数
//        // 其他配置...
//
//        // 创建数据源
//        dataSource = new HikariDataSource(config);
//
//        // 测试连接池获取连接
//        testConnectionAcquisition();
//
//        // 测试高并发环境下的连接池性能
//        testConnectionPoolConcurrency();
//    }
//
//    private static void testConnectionAcquisition() {
//        try (Connection conn = dataSource.getConnection()) {
//            // 使用连接执行一些数据库操作，例如查询
//            Statement stmt = conn.createStatement();
//            ResultSet rs = stmt.executeQuery("SELECT 1");
//            while (rs.next()) {
//                System.out.println("Connected to the database successfully.");
//            }
//        } catch (SQLException e) {
//            e.printStackTrace();
//        }
//    }
//
//    private static void testConnectionPoolConcurrency() {
//        // 创建多个线程来模拟高并发环境
//        for (int i = 0; i < 20; i++) {
//            new Thread(() -> {
//                try (Connection conn = dataSource.getConnection()) {
//                    // 执行数据库操作
//                    System.out.println("Thread " + Thread.currentThread().getId() + " acquired a connection.");
//                    // 模拟数据库操作延时
//                    Thread.sleep(1000);
//                } catch (SQLException | InterruptedException e) {
//                    e.printStackTrace();
//                }
//            }).start();
//        }
//    }
//}
